CHSIZE

#include <io.h>      требуется  только для  объявления функции
            
int chsize(handle,size);
int handle;          handle-р, ссылающийся на открытый файл
long size;           новая длина файла в байтах

Описание.
Функция chsize увеличивает или уменьшает файл, связанный с handle-ром, до размера, определяемого аргументом size. Файл должен быть открыт в режиме, который разрешает запись. Если файл увеличивается, к нему добавляются нулевые символы '\0'. Если файл уменьшается, все данные от конца укороченного файла до первоначальной длины файла теряются.

Возвращаемое значение.
Функция chsize возвращает значение 0, если файл успешно изменен. Возвращаемое значение -1 свидетельствует об ошибке и errno устанавливается в одно из следующих значений:

ЗНАЧЕНИЕ             СМЫСЛ ЗНАЧЕНИЯ
EACCES         	Заданный  файл  определен  только   для
                           чтения. Для версий MS DOS 3.0 и старших,
                           EACCES свидетельствует о принудительной
                           блокировке.(Определенный файл  заблоки-
                           рован для доступа)
                           
EBADF          	Неверный файловый handle
ENOSPC         	На  устройстве не  осталось  свободного места

Пример:

            
#include <io.h>
#include <fcntl.h>
#include <sys\types.h>
#include <sys\stat.h>
            
#define MAXSIZE 32768L
            
int fh, result;
.
.
.
fh=open("data", O_RDWR|O_CREAT, S_IREAD|S_IWRITE);
.
.
.
/* перед закрытием файла нужно убедиться, что он
            ** не длиннее 32К
            */
if (lseek(fh,LO,2)>MAXSIZE)
Hosted by uCoz